﻿#ifndef TLVLOGTEXTAREA_H
#define TLVLOGTEXTAREA_H

#include <QWidget>
#include "services/tlv/Base/tlv.h"

class Tlv;
namespace Ui {
class TlvLogTextArea;
}

class TlvLogTextArea : public QWidget
{
    Q_OBJECT

public:
    explicit TlvLogTextArea(QWidget *parent = nullptr);
    ~TlvLogTextArea();

    void logText(const QString& text);
    void logError(const QString& err);
    void logTlv(const Tlv& tlv);

    void setMaxLineCount(int count);
    int maxLineCount() const;
    void setAutoScrolling(bool en);

protected:
    void customLog(const QString& text, const QColor& textColor);

private slots:
    void onTlvErrorOccurred(const QString& msg);
    void onTlvDataSend(const Tlv& tlv);
    void onTlvDataReceived(const Tlv& tlv);

    void on_btnAutoScrolling_clicked();

    void on_btnExport_clicked();

    void on_btnClear_clicked();

private:
    Ui::TlvLogTextArea *ui;
    bool m_enAS;
};

#endif // TLVLOGTEXTAREA_H
